﻿using System.Data.Entity;

namespace Uber.Data
{
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using Core.Repository;
    using Core.Model;


    //public class AccountRepo : BaseRepo, IAccountRepo
    //{
    //    public AccountRepo(IConnectionFactory connFactory)
    //        : base(connFactory)
    //    {
    //    }

    //    public int InsertRecover(string login, long code, DateTime timp)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "insertRecover";
    //                cmd.Parameters.Add("code", SqlDbType.BigInt).Value = code;
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                cmd.Parameters.Add("timp", SqlDbType.DateTime, 1).Value = timp;

    //                conn.Open();

    //                return cmd.ExecuteNonQuery();
    //            }
    //        }
    //    }

    //    public int Insert(string login, string pass, char tip, string email, long code, long? refId)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "insertAccount";
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                cmd.Parameters.Add("pass", SqlDbType.NVarChar, 20).Value = pass;
    //                cmd.Parameters.Add("tip", SqlDbType.Char, 1).Value = tip;
    //                cmd.Parameters.Add("code", SqlDbType.BigInt).Value = code;
    //                cmd.Parameters.Add("email", SqlDbType.NVarChar, 256).Value = email;
    //                cmd.Parameters.Add("refId", SqlDbType.BigInt).Value = refId.ForNull(DBNull.Value);

    //                conn.Open();

    //                return cmd.ExecuteNonQuery();
    //            }
    //        }
    //    }

    //    public int InsertPro(string login, long id)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "insertPro";
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                cmd.Parameters.Add("id", SqlDbType.BigInt).Value = id;

    //                conn.Open();

    //                return cmd.ExecuteNonQuery();
    //            }
    //        }
    //    }

    //    public int InsertNub(string login, long id)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "insertNub";
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                cmd.Parameters.Add("id", SqlDbType.BigInt).Value = id;

    //                conn.Open();

    //                return cmd.ExecuteNonQuery();
    //            }
    //        }
    //    }

    //    public Account Get(string login)
    //    {
    //        throw new NotImplementedException();
    //    }

    //    public int Count(string login)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "countAccountByName";
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                conn.Open();

    //                return (int)cmd.ExecuteScalar();
    //            }
    //        }
    //    }

    //    public int Count(string login, string pass)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "countAccountByNamePass";
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                cmd.Parameters.Add("pass", SqlDbType.NVarChar, 20).Value = pass;
    //                conn.Open();

    //                return (int)cmd.ExecuteScalar();
    //            }
    //        }
    //    }

    //    //public Account Get(string login)
    //    //{
    //    //    using (var conn = new SqlConnection(Cs))
    //    //    {
    //    //        using (var cmd = conn.CreateCommand())
    //    //        {
    //    //            cmd.CommandType = CommandType.StoredProcedure;
    //    //            cmd.CommandText = "getAccountByName";
    //    //            cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //    //            conn.Open();

    //    //            using (var r = cmd.ExecuteReader())
    //    //            {
    //    //                if (r.Read())
    //    //                {
    //    //                    var o = new Account
    //    //                                {
    //    //                                    Id = r.GetInt64(0),
    //    //                                    Oid = r.GetString(1),
    //    //                                    Email = r.GetString(2),
    //    //                                    Tip = Convert.ToChar(r.GetString(3)),
    //    //                                    Code = r.GetInt64(4)
    //    //                                };
    //    //                    return o;
    //    //                }
    //    //                return null;
    //    //            }
    //    //        }
    //    //    }
    //    //}

    //    public int GetRecoverCount(long code, string login)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "getRecover";
    //                cmd.Parameters.Add("code", SqlDbType.BigInt).Value = code;
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                conn.Open();

    //                return (int)cmd.ExecuteScalar();
    //            }
    //        }
    //    }

    //    public int ChangePass(string login, string pass)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "changePass";
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                cmd.Parameters.Add("pass", SqlDbType.NVarChar, 20).Value = pass;
    //                conn.Open();

    //                return cmd.ExecuteNonQuery();
    //            }
    //        }
    //    }

    //    public char GetTip(string login)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "getTip";
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                conn.Open();

    //                return Convert.ToChar(cmd.ExecuteScalar());
    //            }
    //        }
    //    }

    //    public string Activate(long code, string login)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "activateAccount";
    //                cmd.Parameters.Add("code", SqlDbType.BigInt).Value = code;
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                conn.Open();

    //                return (string)cmd.ExecuteScalar();
    //            }
    //        }
    //    }

    //    public int CountByEmail(string email)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "countAccountByEmail";
    //                cmd.Parameters.Add("email", SqlDbType.NVarChar, 256).Value = email;
    //                conn.Open();

    //                return (int)cmd.ExecuteScalar();
    //            }
    //        }
    //    }

    //    public decimal GetGold(long id)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "getGold";
    //                cmd.Parameters.Add("id", SqlDbType.BigInt).Value = id;
    //                conn.Open();

    //                return (decimal)cmd.ExecuteScalar();
    //            }
    //        }
    //    }

    //    public long GetId(string login)
    //    {
    //        using (var conn = new SqlConnection(Cs))
    //        {
    //            using (var cmd = conn.CreateCommand())
    //            {
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                cmd.CommandText = "getId";
    //                cmd.Parameters.Add("name", SqlDbType.NVarChar, 20).Value = login;
    //                conn.Open();

    //                return (long)cmd.ExecuteScalar();
    //            }
    //        }
    //    }
    //}
}